import { Module } from '@nestjs/common' 
import { LoggerClassService, LoggerService, UseValueService, UseFactory } from './logger.service'

@Module({
  providers: [
    {
      provide: 'SUFFIX',
      useValue: 'suffix'
    },
    LoggerClassService, // 这样定义provider的话等价于下面，token值就是这个类本身
    {
      provide: LoggerService,
      useClass: LoggerService
    },
    {
      // 也是一种定义provider的方法
      provide: 'StringToken', // 这是一个token，也称为标志，或者说令牌，也就是provider的名字
      useValue: new UseValueService('prefix') // 可以直接提供一个值
    },
    {
      provide: 'FactoryToken',
      // inject: ['prefix', 'SUFFIX'],
      useFactory: () => new UseFactory()
      // useFactory: (prefix, suffix) => new UseFactory(prefix, suffix)
    }
  ],
  exports: [
    'SUFFIX',
    LoggerClassService,
    LoggerService,
    'StringToken',
    'FactoryToken'
  ]
})
export class LoggerModule {

}